package  com.erastep.mvc.ifc
{
	

	/**
	 * @author jarvis
	 * */
	public interface IModule extends INotifier
	{
		/**
		 * Execute the message
		 * */
		function executeMessage(note:String,body:Object=null,type:String=null,toId:String = null,fromId:String = null):void;
		
		/**
		 * get host url
		 * */
		function setHostUrl(url:String):void;
		
		
		/**
		 * 默认.
		 * */
		function execute(note:INotification):void;
		
		/**
		 * register mediator
		 * */
		function registerMediator(mediator:IMedator):void
			
	    /**
		 * remove mediator
		 * */
		function removeMediator(mediatorName:String):void;
		
		/**
		 * retrive mediator
		 * */
		function retriveMediator(mediatorName:String):IMedator;
		
		/**
		 * register proxy
		 * */
		function registerProxy(proxy:IProxy):void;
		
		/**
		 * remove proxy
		 * */
		function removeProxy(proxyName:String):void;
		
		/**
		 * retrive proxy
		 * */
		function retriveProxy(proxyName:String):IProxy;
		
		/**
		 * all mediators
		 * */
		function get mediators():Array;
		
		/**
		 * all proxys
		 * */
		function get proxys():Array;
		
		/**
		 * on remove
		 * */
		function onRemove():void;
	}
}